聽說現在會慢慢去建虛擬機的人越來越少了,所以今天我們就來建一個 ubuntu 的虛擬機
這裡我使用的是 ubuntu 最新的 LTS 版本: ubuntu 24.04.3 LTS server
一般來說 pve 儲存 iso 檔案的地方就在 local (pve),如下圖
請務必去參考官網的 ubuntu 系統需求
根據官網的資料及我個人的考量,很多我就使用預設即可
註: 因為 pve 中有設定其他存放 iso 檔的地方,所以我沒有選 local
其實這裡很多選項可以事後反悔,但是儲存空間就需要慎重考慮了,其要改比較麻煩(尤其安裝完系統後)。
下面舉個例子: 我可以在 options 選項中找到 Qemu Guest Agent 的選項去修改成enable,如下圖是未修改前的樣子
其實系統安裝現在 linux 都已經有安裝腳本去輔助使用者了,基本上就選擇下一步
即可
這裡請注意,一般只要選擇 ubuntu server 即可,但是如果想要系統佔更少的儲存空間可以使用 minimized
先不設定網路
snap 這現在用不到,先 skip
這裡其實是另外一個坑,我的建議是不要把 lvm 的選項打開,如果打開了務必注意是否有把整個磁碟的空間都分配乾淨。
這裡我密碼些設定簡單些,後來再把密碼的強度再提高
openssh 這裡先開,之後再來設定
在全部最基本的東西安裝完後作業系統會需要重啟,但是需要把 iso 檔移除,直接到 hardware 那裏把 CD/DVD Drive (ide2) 刪除,之後再回去按 enter
即可。
ip a
先將網路介面確定好,如我的介面是ens18
sudo su
切換管理員去設定ls /etc/netplan
去確認沒有其他奇怪的設定檔(例如 50-cloud-init.yaml 改了這個是可以用網路,但是虛擬機重啟後又會被 cloud-init 洗掉)touch /etc/netplan/01-static.yaml
/etc/netplan/01-static.yaml
network:
ethernets:
ens18:
dhcp4: yes
network:
ethernets:
ens18:
addresses:
- ipv4-address/24
gateway4: gateway4-address
nameservers:
addresses: [8.8.8.8,1.1.1.1]
dhcp4: no
cat > /etc/netplan/01-static.yaml
然後把上面那坨寫進去,最後用 ctrl + d
儲存,注意不要用tab喔。netplan try
測試,如果沒問題按 enter
,有問題按其他鍵快速過120秒(有報錯先暫時不管)apt update
去貪婪的吸收來自網際網路的封包,表示你設定成功了使用 cat >
這樣的方式太硬盒了,先下載些工具吧
.ssh/authorized_keys
(可選apt update
apt install vim iputils-ping qemu-guest-agent -y
註: qemu-guest-agent 的設定需要等虛擬機經過 poweroff 到 start 的循環後才會有效
設定好後我們可以先回頭看看 netplan try
時遇到的警告
chmod 600 /etc/netplan/01-static.yaml
chown 使用者:使用者群組 /etc/netplan/01-static.yaml
增加安全性network:
ethernets:
ens18:
addresses:
- ipv4-address/24
routes:
- to: 0.0.0.0/0
via: gateway4-address
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8
dhcp4: no
現在你可以嘗試
強烈建議使用 ssh 的方式複製貼上指令,往下的指南參考 Install Docker Engine on Ubuntu
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt update
,應能看到 docker 的身影,如下圖sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
使用 docker version 時應該會發現
這是因為 docker 有一個守護進程(docker daemon)會需要用到 root 權限。除非特別設定,不然可能會調用 docker daemon。在資安的角度上看,需要慎重選擇是否讓使用者直接控制 docker daemon。
詳細請參考 Docker daemon attack surface
sudo groupadd docker
sudo usermod -aG docker $USER
docker version
應該長這樣